<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.WindowsAzure.CloudDrive</name>
    </assembly>
    <members>
        <member name="T:Microsoft.WindowsAzure.StorageClient.CloudStorageAccountCloudDriveExtensions">
            <summary>
            Defines extension methods for creating Windows Azure drives from storage account credentials.
            </summary>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudStorageAccountCloudDriveExtensions.CreateCloudDrive(Microsoft.WindowsAzure.CloudStorageAccount,System.String)">
            <summary>
            Create a new instance of a <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDrive"/> object from a storage account.
            </summary>
            <param name="storageAccount">The name of the storage account where the drive's data 
            is to be stored.</param>
            <param name="pageBlobUri">The path to the page blob where the drive's data
            is to be stored.</param>
            <returns></returns>
        </member>
        <member name="T:Microsoft.WindowsAzure.StorageClient.CloudDrive">
            <summary>
            Represents a Windows Azure drive. 
            </summary>
            <remarks>
            <para>
            A Windows Azure drive acts as a local drive mounted on the file system and is accessible 
            to code running in a role. The data written to a Windows Azure drive is stored in a page blob
            defined within the Windows Azure Blob service, and cached on the local file system. Because 
            data written to the drive is stored in a page blob, the data is maintained across the 
            lifecycle of the role instance.
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.#ctor(System.Uri,Microsoft.WindowsAzure.StorageCredentials)">
            <summary>
            Creates a new instance of a <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDrive"/> object.
            </summary>
            <param name="uri">A URI that identifies the page blob where the drive's data will be stored.</param>
            <param name="credentials">Credentials for the storage account that will contain the page blob.</param>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Create(System.Int32)">
            <summary>
            Creates an NTFS-formatted Windows Azure drive and its associated page blob. The page blob
            is created at the URI specified for this <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDrive"/> object.
            </summary>
            <param name="sizeInMB">The size of the drive to create. The minimum size permitted is 16 MB.</param>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Snapshot">
            <summary>
            Creates a snapshot of the page blob associated with this Windows Azure drive.
            </summary>
            <returns>Returns a URI to the newly created snapshot.</returns>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.CopyTo(System.Uri)">
            <summary>
            Copies the data in this Windows Azure drive to a new page blob.
            </summary>
            <param name="destination">The URI of the destination blob.</param>
            <remarks>The copy operation takes place entirely within the Windows Azure Blob service and does not involve the client.</remarks>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Delete">
            <summary>
            Deletes the Windows Azure drive and its associated page blob.
            </summary>
            <remarks>
            If the page blob behind this Windows Azure drive has associated snapshots, you must
            delete the snapshots using the Windows Azure Managed API before deleting the drive.
            </remarks>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Mount(System.Int32,Microsoft.WindowsAzure.StorageClient.DriveMountOptions)">
             <summary>
             Mounts the Windows Azure drive and returns a path to the drive on the local file system.
             </summary>
             <param name="cacheSize">The size of the read cache for this mounted drive. Set this 
             parameter to 0 for unbuffered access to the drive.</param>
             <param name="options">The set of <see cref="T:Microsoft.WindowsAzure.StorageClient.DriveMountOptions"/> for mounting the drive.</param>
             <returns>The local path to the mounted drive.</returns>
             <remarks>
             <para>
             A Windows Azure drive may be mounted as a writable drive, or as a read-only drive if it is created
             from a snapshot of a page blob.
             </para>
             <para>
             Note that before a role instance mounts a drive for the first time, it must initialize the cache
             by calling the <see cref="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.InitializeCache(System.String,System.Int32)"/> method.
             </para>
             <para>
             To create a writable drive, create a new instance of the <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDrive"/> object, specifying
             the desired URI for the page blob. Call the <see cref="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Create(System.Int32)"/> method, then call the Mount
             method to mount the drive.
             </para>
             <para>
             To create a read-only drive, call the <see cref="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Snapshot"/> method to create a new snapshot and 
             return the snapshot's URI, then create a new instance of the <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDrive"/> object from the snapshot's URI
             and mount the drive.
             </para>
             <para>
             When a role instance mounts a writable drive, it acquires an exclusive-write lease on the associated page 
             blob that it retains as long as the drive is mounted. If the same role instance attempts to mount a drive
             with the same URI a second time, the operation is ignored and the Mount method returns the local path to the 
             existing drive.
             </para>
             <para>
             If a role instance other than the one that has mounted the drive and acquired the lease attempts
             to mount a drive with the same URI, the operation fails with a <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDriveException"/>. Only one 
             instance at a time may mount a writable drive and acquire its lease. Once the drive has been unmounted, another instance may
             mount the drive and successfully acquire its lease.
             </para>
             <para>
             If a role instance mounts a read-only drive, there is no associated lease, as snapshots cannot be leased.
             Multiple role instances can mount and access the same read-only drive.
             </para>
             </remarks>
            <exception cref="T:Microsoft.WindowsAzure.StorageClient.CloudDriveException"></exception>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Unmount">
            <summary>
            Unmounts the drive and releases any lease associated with it.
            </summary>
            <remarks>
            Note that when you unmount a drive, its contents are not deleted. To delete the contents of 
            a drive, call the <see cref="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.Delete"/> method.
            </remarks>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.InitializeCache(System.String,System.Int32)">
            <summary>
            Initializes the read cache for any subsequently mounted drives associated with the role instance.
            </summary>
            <param name="cachePath">The local file system path to the directory containing the cache. 
            If the directory does not exist, it will be created.</param>
            <param name="totalCacheSize">The total cache size, in megabytes.</param>
            <remarks>
            <para>
            Before you mount a drive, you must call the InitializeCache method to initialize a cache for the drive.
            If a role instance attempts to mount a drive before a cache has been initialized, a <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDriveException"/> 
            is thrown.
            </para>
            <para>
            When a drive is mounted, it stores cache data in the cache defined by the most recent call to InitializeCache.
            In other words, if a role instance calls the InitializeCache method a second time with different arguments, 
            any drives mounted subsequently will store cache data in the newly defined cache. Any previously mounted drives 
            continue to store cache data in the cache that was defined before those drives were mounted.
            </para>
            </remarks>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDrive.GetMountedDrives">
            <summary>
            Returns a mapping of local file system paths for mounted drives to page blob URIs for the current role instance.
            </summary>
            <returns>A read-only dictionary that maps local paths to page blob URIs.</returns>
        </member>
        <member name="P:Microsoft.WindowsAzure.StorageClient.CloudDrive.Credentials">
            <summary>
            Gets the credentials for the storage account where this drive's data is stored.
            </summary>
        </member>
        <member name="P:Microsoft.WindowsAzure.StorageClient.CloudDrive.LocalPath">
            <summary>
            Gets the local file system path to the mounted drive. Returns null if no drive is currently mounted.
            </summary>
        </member>
        <member name="P:Microsoft.WindowsAzure.StorageClient.CloudDrive.Uri">
            <summary>
            Gets the URI of the page blob where this drive's data is stored.
            </summary>
        </member>
        <member name="T:Microsoft.WindowsAzure.StorageClient.CloudDriveException">
            <summary>
            Defines an exception that may be thrown on operations on Windows Azure drives.
            </summary>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.CloudDriveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.WindowsAzure.StorageClient.CloudDriveException"/> class.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="info"/> parameter is null.
            </exception>
            <exception cref="T:System.Runtime.Serialization.SerializationException">
            The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0).
            </exception>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.Common.AppendPathToUri(System.Uri,System.String)">
            <summary>
            Appends a path to a Uri correctly using "/" as separator
            
            AppendPathToUri(new Uri("http://test.blob.core.windows.net/test", "abc") 
            => new  Uri("http://test.blob.core.windows.net/test/abc")
            
            AppendPathToUri(new Uri("http://test.blob.core.windows.net/test"), "http://test.blob.core.windows.net/test/abc")
            => new Uri("http://test.blob.core.windows.net/test/abc")
            </summary>
            <param name="uri"></param>
            <param name="relPath"></param>
            <returns></returns>
        </member>
        <member name="M:Microsoft.WindowsAzure.StorageClient.Common.AppendPathToUri(System.Uri,System.String,System.String)">
            <summary>
            Append a relative path to a URI, handling trailing slashes appropriately.
            </summary>
            <param name="uri"></param>
            <param name="relPath"></param>
            <param name="sep"></param>
            <returns></returns>
        </member>
        <member name="T:Microsoft.WindowsAzure.StorageClient.DriveMountOptions">
            <summary>
            Specifies options for mounting a Windows Azure drive.
            </summary>
        </member>
        <member name="F:Microsoft.WindowsAzure.StorageClient.DriveMountOptions.None">
            <summary>
            No options specified for mounting the drive.
            </summary>
        </member>
        <member name="F:Microsoft.WindowsAzure.StorageClient.DriveMountOptions.Force">
            <summary>
            Acquires the lease for this instance and forces the drive to be mounted.
            </summary>
        </member>
        <member name="F:Microsoft.WindowsAzure.StorageClient.DriveMountOptions.FixFileSystemErrors">
            <summary>
            Attempts to fix file system errors. Note may result in loss of data. See remarks.
            </summary>
            <remarks>
            Setting this flag calls <code>chkdsk /F</code> on the mounted drive.
            To avoid any potential data-loss it is recommed a snapshot of the drive is taken first before
            attempting to fix file system errors.
            </remarks>
        </member>
    </members>
</doc>
